求教,谁会使用正则表达式表达[1230166114,1230168450]这个区间上的所有数字?

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:22:13
最好使用UltraEdit正则表达式。
如果不会,使用其他正则表达式也行,最好把使用的哪一种写出来。
最好再解释分析一下。
多匹配了1230166111或者漏了1230166120
或者干脆匹配[6114,8450]就行了。

笨办法,但实用快捷:

把数分段后分别表示,中间用|连起来就可以了:

6114-6119 -> 611[4-9]
6120-6199 -> 61[2-9][0-9]
6200-6999 -> 6[2-9][0-9][0-9]
7000-7999 -> 7[0-9][0-9][0-9]
8000-8399 -> 8[0-3][0-9][0-9]
8400-8449 -> 84[0-4][0-9]
8450 -> 8450

中间用|连起来:
(611[4-9]|61[2-9][0-9]|6[2-9][0-9][0-9]|7[0-9][0-9][0-9]|8[0-3][0-9][0-9]|84[0-4][0-9]|8450)

匹配[6114,8450]

[6-8]((?<![6-7])[0-4]|(?<!8)\d)((?<![1-3])[0-5]|(?<!4)\d)((?<![1-4])0|(?<!5)\d)

千位范围6-8,百位若千位是8则百位在0-4之间,十位、个位以此类推!

也许你误解了正则,如果你要匹配数字区间,是一件相当麻烦的事情,用正则来限制数字的区间有点牵强,这不是应该它做的事。有人写过验证IP的正则,它限制了每个位置的数字为0-255,你会发现它为了实现这一点是多么麻烦。